Prior to the advent of the personal computer, a mainframe or mini-computer supporting multiple individual user terminals was the dominant computing paradigm. This centralized architecture allowed for efficient use of expensive computer hardware and software resources by sharing those resources across multiple users.
With the coming of the relatively inexpensive personal computer, a new computing model arose that employed computing resources localized at each user to displace the remote and centralized resources typifying the earlier era.
The advantages of the centralized computing model are many however, ubiquitous networking has led to the resurgence of centralized computing in a variety of forms. In one embodiment, a server provides processing and/or storage resources to one or more remote clients. In other embodiments, a remote client is assigned exclusive access to a workstation or personal computer module maintained at a central site. In any embodiment, consolidation of data and program storage and/or computing resources reduces maintenance and support costs, while enabling increased system security. The remote client that accesses a centralized system may take various forms. A remote client having minimal processing and storage capabilities, and that relies on centralized resources for adequate functionality is known as a “thin client.”
Centralized computer systems are not without disadvantages. For example, failure of a single server supporting multiple users results in a loss of productivity proportional to the number of users supported. Architectures assigning unshared resources to each remote client serve to mitigate such disadvantages. For example, Session Allocation Manager (“SAM”) by Hewlett-Packard Company can dynamically allocate resources and has the capability of assigning backup resources to dedicated systems to mitigate potential downtime.
Each remote user connecting to a centralized system is assigned a set of resources. The extent of resources available to each user varies in accordance with the perceived needs of both the user and the organization. For example, a user may be assigned more or fewer resources in accordance with the applications utilized by the user, and/or the organization's need to maintain system security. Allocation of system resources to users is generally controlled by a system administrator. Flexible and efficient methods for controlling a remote user's access to system resources are desirable to administrators of systems supporting a large number of users.